package com.hdu.dwh.dtos;


import com.hdu.dwh.constants.ParamConstants;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;

@Data
public class DataWarehouseTableDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 数据表名
     */
    @NotNull
    private String tableName;

    /**
     * 数据库ID
     */
    @NotNull
    private Long databaseId;

    /**
     * 层次（0-ODS，1-DWD，2-DWS，3-ADS，4-DIM）
     */
    @NotNull
    private Integer hierarchy;

    /**
     * 描述
     */
    private String description;

    /**
     * 源表ID（可为空，表示源表是外部数据库）
     */
    private Long sourceTableId;

    /**
     * 源表名（主要用来标识外部数据库对应表）
     */
    private String sourceTableName;

    public boolean checkParam(){
        return (this.sourceTableId != null || this.sourceTableName != null) && (hierarchy.equals(ParamConstants.ODS) || hierarchy.equals(ParamConstants.DWD));
    }
}